<script>
	import {
		cache
	} from "@/utils"
	import {
		checkSystemEnableLocation
	} from "@/utils/permision"
	import checkUpdate from '@/uni_modules/uni-upgrade-center-app/utils/check-update'
	// #ifdef APP-PLUS
	const JModule = uni.requireNativePlugin("J-FrontService")
	// #endif
	let counts = 0
	export default {
		onLaunch: async function() {
			uni.removeStorageSync('errNumber')
			this.$store.dispatch("system/getSystemInfo")
			// this.watchPosition()
			if (!cache.get.token()) {
				this.toast("登录已失效")
				setTimeout(() => {
					uni.reLaunch({
						url: '/pages/login/index'
					})
				}, 1000)
				return
			} else {
				const {
					data
				} = await this.$store.dispatch("user/getUserInfo")
				if (data?.withdrawa_back_status === 1) {
					return uni.reLaunch({
						url: '/subpackage/member/pages/warranty/index'
					})
				}
				this.$store.dispatch("user/location")
				this.$store.dispatch("user/getOrderCount")
				// #ifdef APP-PLUS
				// app保活
				this.startKeep()
				// #endif
			}
			// 推送监听
			this.listenPush()
			// 版本更新
			this.applicationUpdate()
			// #ifdef APP-PLUS
			// 定位权限
			// const ret = checkSystemEnableLocation()
			// if (!ret) {
			// 	uni.showModal({
			// 		title: "定位异常",
			// 		content: "定位权限必须开启，前往设置",
			// 		showCancel: false,
			// 		success: r => {
			// 			if (r.confirm) {
			// 				this.rep("/subpackage/member/pages/setting/permision")
			// 			}
			// 		}
			// 	})
			// }
			// #endif

		},
		onShow: function() {
			// #ifdef APP-PLUS
			const localtion = checkSystemEnableLocation()
			// 是否开启定位权限
			if (!localtion) {
				this.$store.dispatch('user/localtionCheck')
			}
			// #endif
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			// 监听推送
			listenPush() {
				// #ifdef APP-PLUS
				uni.onPushMessage(res => {
					console.log(res)
					if (res.type === 'click') {
						const tabbar = ['/pages/staging/index', '/pages/repatriation/index',
							'/pages/message/index'
						]
						const path = res?.data?.payload?.path || '/'
						// 分别跳转
						if (tabbar.includes(path)) {
							uni.switchTab({
								url: path
							})
						} else {
							this.nav(path)
						}
					} else {
						uni.createPushMessage({
							title: res.data.title,
							content: res.data.content,
							payload: {
								...res.data.payload
							}
						})
					}
				})
				// // 使用5+App的方式进行监听消息推送
				// plus.push.addEventListener("click", function(msg) {
				// 	console.log("click:" + JSON.stringify(msg))
				// 	// onLaunch 生命周期里，页面跳转有问题,跳不过去
				// 	// 应该是页面还没加载，加上定时后，就可以了；
				// 	setTimeout(() => {
				// 		// uni.navigateTo({
				// 		// 	url: `pages/charging/chargeCoupon?data=${JSON.parse(msg.payload)}`
				// 		// })
				// 	}, 1000)
				// }, false);
				// // 监听在线消息事件    
				// plus.push.addEventListener("receive", function(msg) {
				// 	//业务代码
				// 	var options = {
				// 		cover: false,
				// 		title: msg.payload.title
				// 	}
				// 	console.log("recevice:" + JSON.stringify(msg))
				// 	plus.push.createMessage(msg.content, "LocaMsg", options)
				// 	if (msg.type === 'receive') {
				// 		plus.push.createMessage(msg.payload.content, url, options)
				// 	}
				// }, false);
				//#endif

			},
			startKeep() {
				JModule.startFrontService({
					// Android生效的配置
					title: '南天快修',
					content: '南天快修应用正在运行',
					// IOS生效的配置
					localtion: true, // 后台持续定位保活
					voice: true // 播放无声音乐保活
				}, res => {
					let {
						flag,
						msg
					} = res
					console.log(flag, msg, '应用保活启动参数')
					// flag 为 true，开启成功，否则失败
					// msg 为 成功失败的消息
				})
			},

			applicationUpdate: checkUpdate,
			// 监听定位信息变化
			watchPosition() {
				// #ifndef APP-PLUS
				plus.geolocation.watchPosition((res) => {
					console.log('位置监听成功', res)
					/* userLocation(coordinate[0], coordinate[1]).then(res => {
						console.log(res, '定位接口调用成功')
					}).catch(err => {
						console.log("定位调用失败", err)
					}) */
				}, (err) => {
					console.log('位置监听失败', err)
				})
				// #endif
			}
		}
	}
</script>

<style lang="scss">
	/* #ifndef APP-NVUE */
	@import "./static/scss/iconfont.scss";

	/* #endif */
	// @import "@/uni_modules/uview-ui/index.scss";
	/*每个页面公共css */
</style>